Setup
Your device and everything needed to run Spark Control.
Dashboard
Device status and today's capture totals.
Device
- iPhone connected
- WebDriverAgent
- iproxy 8100
- Toolidle
Today
Ad Finder
Scrolls the feed and captures sponsored ads. Runs on the connected iPhone.
Run controls
Last run
Live output
Screen
Spark Codes
Grab a Spark code from the phone, and review previously captured ones.
Grab a code
Debug screen — dumps what the phone's screen reader sees, for fixing the flow when TikTok changes its layout.
Live output
Screen
Previously captured
| Code | Days | Captured | Note | Used |
|---|
Poster
Posts images from a folder to TikTok, one at a time, on the connected iPhone. Loose images post singly; a subfolder posts as one carousel.
Source folder
Run controls
Each item uses its own sidecar: photo.txt/.json next to a loose image, or caption.txt inside a carousel folder. The caption above is the fallback when an item has no sidecar.
Live output
Screen
Recent posts
| When | Item | Caption | Spark code | Status |
|---|
Flows
The whole pipeline in one place — what's in each stage, and the next step to move it along. Nothing here runs the chain end to end; every stage is started deliberately.
Shoot briefs
Live output
Logs
Live tool output and the finder's debug logs.
Ads Found
Ads the finder flagged, newest first. Click a thumbnail to view the slides.
| Handle | Marker | Likes | Susp. | Niche | Reason | Found |
|---|
Settings
Pacing for the ad finder (the spark_config row). Changes apply within a few videos while the finder runs — no restart needed.
App paths
Where the tools and your phone live. Editable here or from the iPhone row in Setup.
Updates
Current version —. New builds install automatically from the releases bucket; the Mac must have internet to fetch them.
References
Example screenshots that teach the AI what your target ads look like. Ideal ads sharpen what it catches; non-compliant examples teach it what to flag. The finder uses at most 5 per set.
Proxy
Saved proxy nodes, and a Stash (Clash) config generator to AirDrop to the phone.
Proxies
| Name | Type | Address |
|---|
Stash subscription
Import this URL into Stash as a subscription. The proxy list updates automatically when Stash refreshes.
Note: the Mac must be running and on the same wifi for Stash to refresh the subscription — otherwise Stash keeps its last-fetched copy.
Save to file (fallback)
For when the Mac isn't on the same network — write the config once and AirDrop it to the phone.
Signing
WebDriverAgent must be code-signed to run on the iPhone. A free Apple account's signing expires every 7 days; a paid developer account lasts a year. Re-sign here before it lapses.
WebDriverAgent signing
Actions
Photo importer
A tiny dev-signed helper (com.petere.sparkimporter) that drops images into the camera roll via PhotoKit, so the poster can post them. Signed with the same team as WebDriverAgent.
Installed. On the phone, open Spark Importer once and tap Allow so it can add to Photos.
After a fresh signing the iPhone won't trust the new developer certificate until you approve it once:
- On the iPhone, open Settings
- Go to General → VPN & Device Management
- Tap the developer profile (your Apple ID / team)
- Tap Trust, then confirm
Only needed when the certificate changes — typically the first build after a new signing.